package 排序;

import java.util.Arrays;

public class 冒泡排序 {
    public static void main(String[] args) {
        int[] arr = {1, 5, 3, 2, 4};
        boolean swapped;
        // 外层循环控制排序趟数
        for (int i = 0; i < arr.length - 1; i++) {
            swapped = false;
            // 内层循环控制每趟排序多少次
            for (int j = 0; j < arr.length - 1 - i; j++) {
                // 交换位置（升序）
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    // 如果有交换，则标记为true
                    swapped = true;
                }
            }
            // 如果内层循环体里没有发生交换，则可以提前结束循环
            if (!swapped){
                break;
            }
        }
        // 打印
        System.out.println(Arrays.toString(arr));
    }
}
